package com.example.admin.service;

import com.example.admin.exception.BusinessException;
import com.example.admin.payload.request.LoginRequest;
import com.example.admin.payload.request.SignupRequest;
import com.example.admin.payload.response.JwtResponse;

import java.util.Set;

public interface AuthService {
    JwtResponse authenticateUser(LoginRequest loginRequest);
    void resetPassword(String email, String newPassword);
    void registerUser(SignupRequest signUpRequest) throws BusinessException;
    void logout();
    void assignPermissionsToUser(Long userId, Set<Long> permissionIds) throws BusinessException;
    void assignPermissionsToRole(Long roleId, Set<Long> permissionIds) throws BusinessException;
    JwtResponse refreshToken(String refreshToken) throws BusinessException;

    void logUserAction(String username, String action);
}
